home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Mania 5
/
MacMania 5.toast
/
/
Internet software
/
NewsWatcher
/
NW Source
/
Source
/
glob.h
< prev
next >
Wrap
Text File
|
1996-11-21
|
37KB
|
900 lines
/*----------------------------------------------------------------------------
glob.h
This file contains global constant, type, and variable definitions.
Copyright © 1994-1995, Northwestern University.
----------------------------------------------------------------------------*/
#include <Aliases.h>
#include "def.h"
#include "arrowpair.h"
#ifndef __BIGLIST__
#include "biglist.h"
#endif
/* Constants. */
/*#define kDevelopmentVersion 1*/ /* comment out this line for the release version */
#define kLDEFProc 128 /* resource id of our custom LDEF */
#define kTextMargin 4 /* pixel margin for all text windows */
#define kNewsWatcherSignature 'NNTP' /* NewsWatcher's signature */
#define kSavedUserGroupListFileType 'NEWS' /* user group list file type */
#define kSavedMessageFileType 'TEXT' /* saved message file type */
#define kPrefsFileType 'PREF' /* preferences file type */
#define kOpenTypeList "NEWSTEXT" /* list of file types we can open */
#define kNumOpenTypeList 2 /* number of file types we can open */
#define kuuUndoCreatorType 'uuUN'
#define kExpanderCreatorType 'SITx'
#define kGetURLEventClass 'GURL'
#define kGetURLEventID 'GURL'
#define kGetURLToFileKeyword 'dest'
#define kMaxSchemeNameLen 31 /* max length of scheme name */
#define kMaxMaxFetch 999999 /* max value for "max articles to fetch" pref */
#define kErrorMessageWithQuitButtonDlg 168
/* Strings in STR# id=128 resource. */
#define kStringResourceID 128
#define kStrVersion 1
#define kStrTabStops 2
#define kStrAboutWindTitle 3
#define kStrServerInfoWindTitle 4
#define kStrMemoryLow 5
#define kStrCancelingNofMStatusMsg 6
#define kStrSectionMessageFormat 7
#define kStrNoneOpened 8
#define kStrSomeNotOpened 9
#define kStrNoRefs 10
#define kStrPrefsFileName 11
#define kStrArticleNotFound 12
#define kStrFrom 13
#define kStrOrg 14
#define kStrDate 15
#define kStrNewsgroups 16
#define kStrArticleXofY 17
#define kStrCancelingStatusMsg 18
#define kStrNotCanceled 19
#define kStrNoMsgID 20
#define kStrDuplicateCopiesOfHelper 21
#define kStrMustRestartIC 22
#define kStrCantFindURLHelper 23
#define kStrOutOfMemory 24
#define kStrAuthFailed 25
#define kStrOpeningOTStatusMsg 26
#define kStrSortingStatusMsg 27
#define kStrReadingStatusMsg 28
#define kStrCheckingNewStatusMsg 29
#define kStrCheckingDelStatusMsg 30
#define kStrScrapTooBig 31
#define kStrNoDelGroups 32
#define kStrGetFullStatusMsg 33
#define kStrNewGroups 34
#define kStrFullGroupList 35
#define kStrSelGroupNoUnread 36
#define kStrSelGroupNoArt 37
#define kStrNoneUnread 38
#define kStrNoArts 39
#define kStrUntitled 40
#define kStrOneGroup 41
#define kStrNGroups 42
#define kStrShowFullGroupList 43
#define kStrHideFullGroupList 44
#define kStrShowHeader 45
#define kStrHideHeader 46
#define kStrQuoteStr1 47
#define kStrQuoteStr2 48
#define kStrQuoteStr3 49
#define kStrByWayOfFmt 50
#define kStrNoSubject 51
#define kStrOneNotCanceled 52
#define kStrTo 53
#define kStrSubject 54
#define kStrCc 55
#define kStrBcc 56
#define kStrReplyto 57
#define kStrFollowupto 58
#define kStrKeywords 59
#define kStrDistribution 60
#define kStrExtraNewsHeaderLines 61
#define kStrExtraMailHeaderLines 62
#define kStrSignature 63
#define kStrPostOKMailErr 64
#define kStrTooManyGroups 65
#define kStrTrunc 66
#define kStrURLHelperNotFound 67
#define kStrURLHelperNoMem 68
#define kStrScrapTooBigMaxIs32767 69
#define kStrNoMoreChars 70
#define kStrChecking 71
#define kStrOpeningConnectionStatusMsg 72
#define kStrServerInfoFmt 73
#define kStrURLHelperUnexpectedErr 74
#define kStrSyntaxErr 75
#define kStrNotInFullGroupList 76
#define kStrGroupDeletedOnServer 77
#define kStrMissingGroupName 78
#define kStrCheckingForNewArticlesStatusMsg 79
#define kStrQuoteString 80
#define kStrDirFull 81
#define kStrGettingGroupListFromHostStatusMsg 82
#define kStrGetFromHostWindowTitle 83
#define kStrNoneCanceled 84
#define kStrSaveGroupListAs 85
#define kStrSendingGroupListToHostStatusMsg 86
#define kStrSizeofTPrefRecBadFmt 87
#define kStrOpeningMacTCPStatusMsg 88
#define kStrCouldNotOpenMacTCP 89
#define kStrStartupError 90
#define kStrOldPrefsFileName 91
#define kStrReallyOldPrefsFileName 92
#define kStrDiskFull 93
#define kStrPersonalNWFolder 94
#define kStrCantFindDefaultURLHelper 95
#define kStrUnexpectedErr 96
#define kStrDefaultTextFileOwner 97
#define kStrDefaultNewsrcFileName 98
#define kStrPrintingSample 99
#define kStrGroupSubjectSample 100
#define kStrArtMsgSample 101
#define kStrMustRestart 102
#define kStrPrintNoPagesInRange 103
#define kStrSaveArticlePrompt 104
#define kStrSaveMessagePrompt 105
#define kStrDiskIOErr 106
#define kStrDefaultSearchHdr 107
#define kStrSearchingStatusMsg 108
#define kStrNoMatches 109
#define kStrSearchWindowTitle 110
#define kStrMustCheckAnIcon 111
#define kStrMustSupplySubject 112
#define kStrMustSupplyNewsgroup 113
#define kStrMustSupplyRecipient 114
#define kStrPostingMessageStatusMsg 115
#define kStrMailingMessageStatusMsg 116
#define kStrFolderSelectNothing 117
#define kStrFolderSelectFmt 118
#define kStrStatusWindowTitle 119
#define kStrHelperTooOld 120
#define kStrStatusCancelButtonName 121
#define kStrLogFileName 122
#define kStrGettingSubjectsAndAuthorsStatusMsg 123
#define kStrGetSubjectsStatusMsg 124
#define kStrSelArticleDoesntExist 125
#define kStrNoneExist 126
#define kStrSomeDontExist 127
#define kStrOneArt 128
#define kStrNArts 129
#define kStrSomeGroupsNotInFullGroupList 130
#define kStrDragTextTooBig 131
#define kStrDragTextBadChar 132
#define kStrDamagedCache 133
#define kStrFileLockedOrBusy 134
#define kStrLogOpenMsg 135
#define kStrNewsWatcherVersion 136
#define kStrLogLegend 137
#define kStrLogCantOpen 138
#define kStrLogClosed 139
#define kStrScrapBadChar 140
#define kStrNoMoreTyping 141
#define kStrDelGroupsWindTitle 142
#define kStrNews 143
#define kStrMail 144
#define kStrFTP 145
#define kStrVolLocked 146
#define kStrNNotCanceled 147
#define kStrNewsWatcher 148
#define kStrGettingAndSavingArticle 149
#define kStrGettingAndSavingArticleNofM 150
#define kStrDefaultArtFoldNotFound 151
#define kStrDefaultMsgFoldNotFound 152
#define kStrMessageBodyTruncated 153
#define kStrMessageFieldTruncated 154
#define kStrHqxDecodeHelperName 155
#define kStrDownloadFoldNotFound 156
#define kStrDownloadTempFilePrefix 157
#define kStrDownloadTempFilePrompt 158
#define kStrGettingAndSavingFile 159
#define kStrGettingAndSavingPartNofM 160
#define kStrCantFindDecodeHelper 161
#define kStrDecodeHelperNoMem 162
#define kStrDecodeHelperUnexpectedErr 163
#define kStrDecodePartsMissing 164
#define kStrGettingAndSavingArtAofBPartNofM 165
#define kStrArtHasNoAttachedFile 166
#define kStrAllSelectedArtsHaveMissingParts 167
#define kStrOneArtSkippedNoAttachedFile 168
#define kStrNArtsSkippedNoAttachedFile 169
#define kStrOneArtSkippedMissingParts 170
#define kStrNArtsSkippedMissingParts 171
#define kStrExtractBinariesManuallyDlgLabel 172
#define kStrBody 173
#define kStrTempFileName 174
#define kStrBadScrapData 175
#define kStrDuplicateGroups 176
#define kStrOneDuplicateGroup 177
#define kStrMoving 178
#define kStrPasting 179
#define kStrDragTextTooBigMaxIs32767 180
#define kStrGroupDragTooBigMaxIs32767 181
#define kStrDiskWriteProtected 182
#define kStrArtNotOnServer 183
#define kStrOneArtSkippedNotOnServer 184
#define kStrNArtsSkippedNotOnServer 185
#define kStrUUDecodeHelperName 186
#define kStrPrinting 187
#define kStrGettingAndPrinting 188
#define kStrGettingAndPrintingNofM 189
#define kStrPrintedFor 190
#define kStrSaveFileAsPrompt 191
#define kStrNoNewsgroupsHeader 192
#define kStrBadPrefs 193
#define kStrDamagedPrefsFileName 194
#define kStrPrintNoDriver 195
#define kStrNoPrinterSelected 196
#define kStrNntpURLSyntaxError 197
#define kStrAddingInitialSubscribedGroups 198
#define kStrFloppyLocked 199
#define kStrFloppyEraseFailed 200
#define kStrCouldNotOpenOT 201
#define kStrArticleOrGroupNotFound 202
#define kStrURLSyntaxError 203
#define kStrNotAnApplication 204
#define kStrDesktopDatabaseDamaged 205
#define kStrMustSupplyBody 206
#define kStrOnlyQuotedText 207
#define kStrBadEmailAddress 208
#define kStrCopyAlsoPostedTo 209
#define kStrNewsIconLabel 210
#define kStrMailIconLabel 211
#define kStrSelfIconLabel 212
#define kStrCantRedefineBuiltinURLs 213
#define kStrURLSchemeAlreadyDefined 214
#define kStrBadURLHelperPrefs 215
#define kStrAvailableMemoryFmt 216
/* Types. */
typedef enum TWindowKind {
kGroup, /* group list window */
kSubject, /* subject list window */
kArticle, /* article window */
kMessage, /* message window */
kText, /* text window */
kHelp, /* help window */
kStatus, /* status window */
kDialog, /* dialog window */
kDummy, /* dummy window */
kNotOurWind /* no window, or DA window */
} TWindowKind;
#define kNumWindowKind kNotOurWind /* number of window kinds */
typedef enum TGroupWindowKind {
kFullGroup, /* full group list window */
kNewGroup, /* new groups list window */
kUserGroup /* user group list window */
} TGroupWindowKind;
typedef enum TAttachedFileKind {
kNoAttachedFile, /* no attached file */
kArtNotOnServer, /* article or part no longer on server */
kBinHex, /* BinHex */
kUUEncode /* uuencode */
} TAttachedFileKind;
typedef char TURLSchemeName[kMaxSchemeNameLen+1];
typedef struct TOldURLHelperInfo { /* for pre-version 2.0b25 prefs files */
OSType sig; /* signature of helper program */
unsigned long versionNumber; /* version number */
unsigned long lastMod; /* last mod date/time */
} TOldURLHelperInfo;
typedef struct TURLHelperInfo {
TURLSchemeName schemeName; /* scheme name */
OSType sig; /* signature of helper program */
unsigned long versionNumber; /* version number */
unsigned long lastMod; /* last mod date/time */
} TURLHelperInfo;
typedef struct TDispatch {
void (*activate)(WindowPtr wind, Boolean act);
void (*update)(WindowPtr wind);
OSErr (*mouse)(WindowPtr wind, Point where, short modifiers);
Boolean (*draggable)(WindowPtr wind, Point where, short modifiers);
OSErr (*key)(WindowPtr wind, unsigned char theChar, unsigned char theKey, short modifiers);
OSErr (*grow)(WindowPtr wind, Point where);
OSErr (*zoom)(WindowPtr wind, short zoomDir);
OSErr (*command)(WindowPtr wind, short menu, short item, short modifiers);
OSErr (*close)(WindowPtr wind);
void (*idle)(WindowPtr wind, RgnHandle cursorRgn);
void (*help)(WindowPtr wind, Point where);
} TDispatch;
typedef enum TMsgFieldLabelKind {
kNoMsgFieldLabel, /* no message window label for this field */
kMsgFieldLabelLeft, /* message window field has label on left */
kMsgFieldLabelTop /* message window field has label on top in italics */
} TMsgFieldLabelKind;
typedef struct THeader {
long number; /* article number */
long offset; /* offset in strings of header text */
} THeader;
typedef struct TUnread {
long firstUnread; /* first unread message */
long lastUnread; /* last unread message */
struct TUnread **next; /* handle to next entry in list */
} TUnread;
typedef struct TGroup {
long nameOffset; /* offset in gGroupNames of group name string */
long firstMess; /* # of first msg in group */
long lastMess; /* # of last msg in group */
TUnread **unread; /* handle to list of unread messages for group */
long numUnread; /* number of unread articles in group */
char status; /* a general purpose status "marker" used in
several contexts */
} TGroup;
typedef struct TSubject {
long subjectOffset; /* offset in strings block of subject string */
long authorOffset; /* offset in strings block of author string */
long number; /* article number */
long threadHeadIndex; /* index of first article in thread in
subject array. */
long threadOrdinal; /* article ordinal in thread (1,2,3,...) */
long threadLength; /* total number of articles in thread */
long nextInThread; /* index in subject array of next subject
in this thread, or -1 if none. */
long partNum; /* part number, or kMaxLong if not a part */
long numParts; /* number of parts, or kMaxLong if not a part */
Boolean collapsed; /* true if thread collapsed */
Boolean read; /* true if article has been read */
Boolean incomplete; /* true if incomplete part of multiple part article */
Boolean complete; /* true if part of multiple part article and thread
is now complete (contains all parts, and at least
one part from cache) */
Boolean inList; /* true if part of subject window list */
} TSubject;
typedef struct TChild {
WindowPtr childWindow; /* pointer to child window */
struct TChild **next; /* handle to next entry in list */
} TChild;
typedef struct TMsgFieldInfo {
TEHandle edit; /* handle to TextEdit record for field */
short top; /* top coord of field */
short bottom; /* bottom coord of field */
short nLines; /* number of TextEdit lines in field */
Boolean sepLine; /* true if field preceded by gray separator line */
TMsgFieldLabelKind labelKind; /* kind of label for this field */
unsigned char label[60]; /* P-format field label, if any */
} TMsgFieldInfo;
typedef struct TDialogItemInfo {
Boolean validChars[256]; /* set of valid printable chars in field */
Boolean numeric; /* true if numeric field */
Boolean returnIsLegal; /* true if CR is legal in field */
short popupTypeinItem; /* item number of partner typein field for popup item,
or 0 if none */
char keyEquivalent; /* command key equivalent for button, or 0 if none */
short maxLength; /* max length of field */
char *password; /* pointer to password if password field, or nil */
Boolean readOnly; /* true if read only scrolling field */
TEHandle theTE; /* textedit handle for scrolling field, or nil
if none */
ControlHandle vScroll; /* handle to vertical scroll bar control if scrolling
field, or nil if none */
} TDialogItemInfo;
#pragma options align=mac68k
typedef struct TSavedWindPos {
Boolean valid; /* true if valid, else use default pos */
Boolean zoomed; /* true if window zoomed */
Boolean oldFormat; /* true if old format (pre-2.0b4):
userState.topLeft valid,
all other fields not used */
Rect userState; /* saved window user state */
} TSavedWindPos;
#pragma options align=reset
typedef struct TWindow {
/* Fields used by all kinds of windows. */
TWindowKind kind; /* kind of window */
Boolean windPosValid; /* true if window position should be saved
and restored */
Boolean movedSinceLastSave; /* true if window has been moved or resized
or zoomed since the last time its position
was saved on the document file */
/* Fields used only by group, subject, article, message, and text windows */
short panelHeight; /* height of panel area */
FontInfo fontInfo; /* font info */
short lineHeight; /* font line height (ascent + descent + leading) */
/* Fields used only by group, subject, article, message, help, and text windows */
ControlHandle vScroll; /* handle to vertical scroll bar */
/* Fields used only by group windows. */
BigListRef groupList; /* list ref */
TGroupWindowKind groupKind; /* kind of group window */
long numGroups; /* number of groups */
/* Fields used only by article and subject windows. */
WindowPtr parentWindow; /* pointer to parent window */
Boolean windPosLocked; /* true if window position is locked */
/* Fields used only by group and subject windows. */
TChild **childList; /* handle to linked list of child windows */
/* Fields used only by user group and message windows */
Boolean changed; /* true if window contents changed */
AliasHandle alias; /* handle to alias for saved file if saved, else nil */
/* Fields used only by article, message, and text windows. */
TEHandle theTE; /* TextEdit handle */
/* Fields used only by article and message windows. */
Boolean showDetails; /* true if details shown */
/* Fields used only by help windows. */
short pictResID; /* 'PICT' resource id for window */
ArrowPairRef helpArrowPair; /* arrow pair reference */
/* Fields used only by full group and new group windows. */
long **groupNameOffsets; /* handle to array of offsets into gGroupNames */
/* Fields used only by user group windows. */
TGroup **groupArray; /* handle to group array */
Handle unsubscribed; /* handle to list of unsubscribed groups */
Boolean autoFetched; /* true if autofetched from host */
short groupNameHCoord; /* h coord of group name */
short numUnreadHCoord; /* h coord of num unread articles */
Boolean okToCloseIfChanged; /* true if ok to close window with changes without saving */
/* Fields used only by subject windows. */
BigListRef subjectList; /* list handle */
TSubject **subjectArray; /* handle to subject array */
long numSubjects; /* number of subjects in array */
long numSubjectsInList; /* number of subjects in list */
Handle strings; /* handle to subject and author strings */
short maxSubjectWidth; /* width in pixels of longest subject line, or
0 if not yet computed */
long firstFetched; /* article number of first article fetched */
long groupNameOffset; /* offset in gGroupNames of group name */
long parentGroup; /* index in groupArray or groupNameOffsets of parent group window */
Boolean authorsShown; /* true if authors shown */
short minusSignHCoord; /* h coord of minus sign */
short threadCountHCoord; /* h coord of thread count */
short checkHCoord; /* h coord of check mark */
short authorHCoord; /* h coord of author */
short authorWidth; /* width of author field */
short subjectHCoord; /* h coord of subject */
long autoExpandedThread; /* index in subject array of first article in thread
which was most recently autoexpanded by a Find or
Find Next command, or -1 if none */
PolyHandle expandTriangle; /* handle to expanded triangle polygon */
PolyHandle collapseTriangle;/* handle to collapsed triangle polygon */
long **sortByNumber; /* handle to array of offsets to elements of subject
array sorted by article number */
/* Fields used only by article windows. */
Handle fullText; /* handle to full article text */
short maxBodyLineWidth; /* width in pixels of longest body line, truncated
to 80 * max char width, or 0 if not yet computed */
short numBodyLines; /* number of lines in body, or 0 if maxLineWidth = 0 */
short numSections; /* number of sections */
short curSection; /* current section */
long **sectionBreaks; /* handle to array of section breaks, or nil
if none */
Handle msgId; /* handle to msgId if opened by id, or nil */
long parentSubject; /* index in subjectArray of parent subject window */
ControlHandle hScroll; /* handle to horizontal scroll bar, or nil if none */
Boolean attachedFile; /* true if article has an attached file */
Boolean showFollowupTo; /* true to display Followup-To header in panel area */
Boolean showReplyTo; /* true to display Reply-To header in panel area */
ArrowPairRef sectionArrowPair; /* section arrow pair reference */
ArrowPairRef nextPrevArrowPair; /* next/prev arrow pair reference */
short threadInfoWidth; /* width of "Article x of y" message in panel area */
Handle groupName; /* handle to group name, or nil if opened by id */
long number; /* article number if not opened by id */
Boolean flagReqd; /* true if when fetched from server BinHex or uuencode
text was required to have a special "begin" flag line */
/* Fields used only by message windows. */
Boolean newsIcon; /* true if news icon checked */
Boolean mailIcon; /* true if mail icon checked */
Boolean selfIcon; /* true if self icon checked */
ControlHandle sendButton; /* handle to "Send" button control */
ControlHandle tabCheckbox; /* handle to tab stops checkbox control */
ControlHandle wrapCheckbox; /* handle to wrap checkbox control */
TEHandle tabField; /* handle to tab stops field */
TEHandle quoteStringField; /* handle to quote string field */
TEHandle newsgroupsField; /* handle to "Newsgroups" field */
TEHandle toField; /* handle to "To" field */
TEHandle subjectField; /* handle to "Subject" field */
TEHandle ccField; /* handle to "Cc" field */
TEHandle bccField; /* handle to "Bcc" field */
TEHandle replytoField; /* handle to "Reply-To" field */
TEHandle followuptoField; /* handle to "Followup-To" field */
TEHandle keywordsField; /* handle to "Keywords" field */
TEHandle distributionField; /* handle to "Distribution" field */
TEHandle extraNewsField; /* handle to extra news header lines field */
TEHandle extraMailField; /* handle to extra mail header lines field */
TEHandle signatureField; /* handle to signature field */
Handle references; /* handle to "References" header contents */
Handle from; /* handle to "From" header contents for redirected mail msg */
TMsgFieldInfo **fields; /* handle to array of field info */
short numFields; /* number of fields */
short firstScrollingField; /* index if fields array of first scrolling field */
short curField; /* index in fields array of current field */
short labelRight; /* right coord of header field labels */
Boolean tabEnabled; /* true if body tabs currently enabled for this window */
Boolean wrapOnSend; /* true to wrap message before sending it */
short tabStops; /* current tab stops for this window */
Boolean showLabels; /* true to show labels under 3 icons in panel area */
short iconPanelHeight; /* heigth of icon panel */
short optionsPanelHeight; /* height of options panel */
Boolean isFollowup; /* true if message is a followup */
/* Fields used only by dialog windows. */
Boolean movableModal; /* true if dialog is movable modal */
short defaultItem; /* item number of default button, or 0 if none */
Boolean defaultOutline; /* true if default button outlined */
short cancelItem; /* item number of cancel button, or 0 if none */
short curItem; /* item number of currently active scrolling text field,
or 0 if none */
TDialogItemInfo **itemInfo; /* handle to array of item information */
/* Fields used only by text windows. */
void (*drawPanel)(WindowPtr); /* pointer to panel drawing function, or nil if none */
} TWindow;
#pragma options align=mac68k
typedef struct TPrefRec {
/* Original 1.0.2 prefs. */
Str255 newsServerName; /* name of news server */
Str255 textFont; /* name of textedit font */
short textSize; /* size of textedit font */
Str255 listFont; /* name of list font */
short listSize; /* size of list font */
Point fullGroupWindowLocn; /* saved top left full group window position
(defunct as of 2.0b4) */
Point unused0; /* unused (used to be bot right saved full group window pos */
Point unused1; /* unused (used to be stagerring offset) */
Point statusWindowLocn; /* saved top left status window position */
short oldMaxFetch; /* old max. number of articles to fetch
(defunct as of 2.1b1) */
CStr255 ftpNewsrcUsername; /* username for FTP transfers of newsrc files */
CStr255 ftpNewsrcHost; /* host name for FTP transfers of newsrc files */
CStr255 fullName; /* user's full name */
CStr255 organization; /* user's organization */
char signature[4096]; /* user's signature */
Boolean fullGroupListVisible; /* true if full group list window is visible */
Boolean unused2; /* unused (used to be auto zoom windows) */
Boolean unused3; /* unused (used to be offset winds from parent) */
Boolean unused4; /* unused (used to be most recent first) */
Str255 mailServerName; /* mail server name */
CStr255 emailAddress; /* user's e-mail address */
/* Added in 1.2(NU) */
char magicCookie[12]; /* magic cookie */
char versionString[12]; /* version string - used from version 1.2(NU) through
version 2.0d17. Empty string in version 2.0d18
and later versions. */
Boolean areYouSureAlert; /* true to present are you sure alert on postings */
/* Added in 1.3d1 */
Boolean autoFetchNewsrc; /* auto get/put .newsrc file */
Boolean unused5; /* unused (used to be CC self on email replies) */
/* Added in 1.3d4 */
Boolean showArtHeaders; /* true to show article headers by default */
Boolean showAuthors; /* true to show authors in subject windows */
Boolean showThreadsCollapsed; /* true to show threads collapsed by default */
/* Added in 2.0d9 */
Boolean checkForNewGroups; /* Check for new newsgroups at startup */
Boolean unused6; /* unused (used to be killed articles are shown
but marked as read) */
unsigned long groupCheckTime; /* The last time we checked for new groups */
char ftpNewsrcPassword[32]; /* Password for FTP transfers of newsrc files */
Boolean saveFtpNewsrcPassword; /* True to save newsrc FTP password */
Boolean unused7; /* unused (used to be xpand threads with highlighted articles) */
OSType savedArtCreator; /* Creator code for owning app of saved articles */
Str31 savedArtAppName; /* Name of the app which owns saved articles */
Str31 DefunctSavedArtDefaultVolName; /* Default volume to store saved articles (not used in
2.0d41 and later) */
long DefunctSavedArtDefaultDirID; /* Default dir id to store saved articles (not used in
2.0d41 and later) */
short maxGroupNameWidth; /* max group name width in current list font
and size, or 0 if needs to be recomputed */
Boolean useXPAT; /* use XPAT for searching if available */
/* Added in 2.0d10 */
Boolean savedArtDefaultFolder; /* true if using default folder for saved articles */
char ftpNewsrcPath[32]; /* Path for FTP transfers of newsrc files */
/* Added in 2.0d11 */
Boolean addSigSeparatorLine; /* true to add "-- " separator line before sig */
/* Added in 2.0d12 */
Boolean keypadShortcuts; /* true if keypad shortcuts enabled */
Boolean logActionsToFile; /* true if logging enabled */
/* Added in 2.0d14 */
Boolean batchedGroupCmds; /* use batched GROUP commands */
Boolean noNewConnection; /* don't establish new connection when checking for new articles */
Boolean noModeReader; /* don't send MODE READER command */
/* Added in 2.0d16 */
Boolean reZoomWindows; /* rezoom windows */
Boolean autoSaveOnQuit; /* auto save on quit */
/* Added in 2.0d18 */
Boolean replyPost; /* reply via posting */
Boolean replyEmail; /* reply via email */
Boolean copySelf; /* send copies to self */
Boolean showMsgDetails; /* show message window details */
Boolean tabEnabled; /* tabs enabled in message bodys */
short tabStops; /* tab stops */
char quoteString[11]; /* quote string */
CStr255 extraNewsHdrLines; /* extra news header lines */
CStr255 extraMailHdrLines; /* extra mail header lines */
/* Added in 2.0d19 */
unsigned long version; /* version number of NewsWatcher which created this
prefs file, in 'vers' resource format */
Boolean addSigBlankLine; /* add blank line before signature */
/* Added in 2.0d21 */
Point prefsLoc; /* location of preferences dialog */
Point unused8; /* unused (used to be location of about box dialog) */
Point hostLoc; /* location of remote host dialog */
Point servErrLoc; /* location of news server error dialog */
Point searchLoc; /* location of search dialog */
Point unused9; /* unused (used to be location of server info dialog) */
Point delGroupsLoc; /* location of deleted groups dialog */
/* Added in 2.0d24 */
Boolean unused10; /* unused (used to be fetch oldest/newest option */
Boolean wrapOnSend; /* true to wrap messages before sending them */
/* Added in 2.0d25. These prefs fields are defunct as of 2.0b17. They are
replaced by the new ftpHelperInfo field. */
OSType ftpHelper; /* Creator code for FTP helper program */
Str31 ftpHelperName; /* Name of FTP helper program */
/* Added in 2.0d26 */
char authUsername[32]; /* authorization username */
char authPassword[32]; /* authorization password */
Boolean authSavePassword; /* true to save authorization password */
Boolean authAtStartup; /* true to authorize at startup, false to
authorize only when requested */
Point authLoc; /* location of authorization dialog */
/* Added in 2.0d27 */
Boolean authPrivateGroups; /* true if private groups */
/* Added in 2.0d39 */
Boolean unused11; /* unused (used to be saved article auto save option) */
/* Added in 2.0d41 */
Boolean savedMsgDefaultFolder; /* true if using default folder for
saved messages */
AliasHandle savedMsgDefaultFolderAlias; /* reserved for handle to default
saved message folder alias */
Boolean unused12; /* unused (used to be saved msg auto save option */
Boolean savedMsgDelAfterSend; /* true to delete saved messages after sending them */
AliasHandle savedArtDefaultFolderAlias; /* reserved for handle to default saved article
folder alias */
Boolean savedBinDefaultFolder; /* true if using default folder for saved
binaries */
AliasHandle savedBinDefaultFolderAlias; /* reserved for handle to default saved binaries
folder alias */
OSType hqxHelper; /* creator code for BinHex helper program */
Str31 hqxHelperName; /* name of BinHex helper program */
/* Added in 2.0d44 */
OSType uuHelper; /* creator code for uudecode helper program */
Str31 uuHelperName; /* name of uudecode helper program */
Boolean keyboardShortcuts; /* main keyboard shortcuts */
/* Added in 2.0d48 */
Boolean reuseArticleWinds; /* reuse article windows */
Point autoFetchNewsrcLocn; /* saved top left auto-fetched newsrc
window position (defunct as of 2.0b4) */
/* Added in 2.0b4 */
Boolean dontCoverFinderIcons; /* don't cover Finder icons */
Boolean saveThreadsToSeparateFiles; /* save threads to separate files */
Boolean appendIfFileAlreadyExists; /* append if file already exists */
Boolean saveEncodedText; /* save encoded text */
Boolean subjectWindPosLocked; /* true if subject window pos locked */
Rect subjectWindLocn; /* saved locked subject window pos */
Boolean articleWindPosLocked; /* true if article window pos locked */
Rect articleWindLocn; /* saved locked article window pos */
TSavedWindPos fullGroupWindPos; /* saved full group window position */
TSavedWindPos autoFetchWindPos; /* saved autofetch window position */
/* Added in 2.0b12 */
Boolean returnToSubjectWindow; /* return to subject window at end of thread */
/* Added in 2.0b14 */
Boolean beepAtEndOfGroup; /* beep at end of group
(defunct as of 2.0b27) */
Point findLoc; /* location of find dialog */
/* Added in 2.0b15 */
Boolean startFindAtBeginning; /* true to start Find commmands at
beginning of window */
Boolean savedUGLDefaultFolder; /* true if useing default folder for
saved user group lists */
AliasHandle savedUGLDefaultFolderAlias; /* reserved for handle to default
saved user group list folder alias */
Point waitForDNRLoc; /* location of wait for DNR dialog */
/* Added in 2.0b17 - defunct as of 2.0b25 */
TOldURLHelperInfo ftpHelperInfo; /* pre-2.0b25 ftp helper program info */
TOldURLHelperInfo httpHelperInfo; /* pre-2.0b25 http helper program info */
TOldURLHelperInfo gopherHelperInfo; /* pre-2.0b25 gopher helper program info */
TOldURLHelperInfo waisHelperInfo; /* pre-2.0b25 wais helper program info */
TOldURLHelperInfo telnetHelperInfo; /* pre-2.0b25 telnet helper program info */
TOldURLHelperInfo tn3270HelperInfo; /* pre-2.0b25 tn3270 helper program info */
TOldURLHelperInfo fingerHelperInfo; /* pre-2.0b25 finger helper program info */
TOldURLHelperInfo whoisHelperInfo; /* pre-2.0b25 whois helper program info */
/* Added in 2.0b21 */
Str255 printingFont; /* name of printing font */
short printingSize; /* size of printing font */
/* Added in 2.0b22 */
Boolean useInternetConfig; /* true to use Internet Config */
/* Added in 2.0b23 */
Boolean useWebHelperForHtmlFiles; /* true to use web (http) helper for .html ftp URLs */
TOldURLHelperInfo phHelperInfo; /* pre-2.0b25 ph helper program info */
/* Added in 2.0b25 */
Point retryConnectLoc; /* location of retry news server connect dialog */
Boolean showLabelsUnderIcons; /* true to show labels under 3 msg window icons */
TURLHelperInfo **urlHelpers; /* reserved for handle to array of URL helper info,
terminated by an entry with schemeName = empty
string. */
/* Added in 2.0b27 */
Boolean stopAtEndOfSubjectList; /* true to stop at end of subject list */
Boolean beepAtEndOfLists; /* true to beep at end of subject and group lists */
/* Added in 2.1b1 */
long maxFetch; /* max articles to fetch */
char fill[128]; /* for future expansion */
} TPrefRec, *TPrefPtr;
#pragma options align=reset
/* Global variables. */
extern TDispatch gDispatch[kNumWindowKind]; /* dispatch table */
extern long gNumGroups; /* number of newsgroups */
extern long **gGroupNameOffsets; /* handle to array of offsets into gGroupNames */
extern Handle gGroupNames; /* handle to group name strings */
extern WindowPtr gFullGroupWindow; /* pointer to full group list window */
extern Boolean gFullGroupListDirty; /* true if full group list dirty */
extern Boolean gMustDoZoomOnShowFullGroupList; /* true if full group list needs zooming */
extern TPrefRec gPrefs; /* preferences */
extern CStr255 gAutoFetchHost; /* autofetch host */
extern CStr255 gAutoFetchUsername; /* autofetch username */
extern char gAutoFetchPassword[32]; /* autofetch password */
extern char gAutoFetchPath[32]; /* autofetch path */
extern Boolean gDone; /* flag set true upon program termination */
extern Boolean gCancel; /* flag set when user cancels an action */
extern Boolean gStartupOK; /* true if no errors during startup */
extern Boolean gStartingUp; /* true during startup */
extern Boolean gPrefsFileFoundAtStartup; /* true if prefs file found during startup */
extern Boolean gLongOperation; /* true during long operations */
extern Boolean gInDialog; /* true while in dialog */
extern Boolean gInBackground; /* background/foreground flag */
extern Boolean gAEServer; /* true while responding to Apple event */
extern DialogPtr gMyCurDialog; /* pointer to NewsWatcher's current dialog
window, or nil if none */
extern Rect gDesktopExtent; /* desktop extent */
extern Cursor gIBeamCurs; /* ibeam cursor */
extern Cursor gWatchCurs; /* watch cursor */
extern Boolean gHaveDragMgr; /* true if Drag Manager is available */
extern OSErr (*gDragPostProcessor)(void); /* pointer to drag and drop post-processing
function, or nil if none */
extern OSErr gDragErr; /* Drag Manager handler error code. */
extern Boolean gDidDrag; /* true if did a drag and drop */
extern EventRecord gCurEvent; /* current event being handled */
extern EventRecord gPrevEvent; /* previous event */
extern Boolean gHaveTEOutlineHilite; /* true if TE outline hilight feature
is available */
extern CStr255 gFindPattern; /* pattern for Find and Find Again commands */